package com.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.domain.SysDictEntity;
import com.mapper.SysDictMapper;
import com.service.SysDictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 字典数据表 服务实现类
 * </p>
 *
 * @author sly
 * @since 2024-01-09
 */
@Service
public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDictEntity> implements SysDictService {

    @Autowired
    private SysDictMapper sysDictMapper;

    @Override
    public SysDictEntity selectDictByValue(String dictValue) {
        // 查询详情
        QueryWrapper<SysDictEntity> sysDictQueryWrapper = new QueryWrapper<>();
        sysDictQueryWrapper.lambda().eq(SysDictEntity::getDictValue, dictValue)
                .eq(SysDictEntity::getIsDel, 0);
        SysDictEntity list = sysDictMapper.selectOne(sysDictQueryWrapper);
        return list;
    }

    @Override
    public List<SysDictEntity> selectDictByType(String dictType) {
        // 查询详情
        QueryWrapper<SysDictEntity> sysDictQueryWrapper = new QueryWrapper<>();
        sysDictQueryWrapper.lambda().eq(SysDictEntity::getDictType, dictType)
                .eq(SysDictEntity::getIsDel, 0);
        List<SysDictEntity> list = sysDictMapper.selectList(sysDictQueryWrapper);
        return list;
    }

    @Override
    public SysDictEntity getSysDictDetail(Long sysDictId) {
        // 查询详情
        QueryWrapper<SysDictEntity> sysDictQueryWrapper = new QueryWrapper<>();
        sysDictQueryWrapper.lambda().eq(SysDictEntity::getId, sysDictId)
                .eq(SysDictEntity::getIsDel, 0);
        SysDictEntity sysDict = sysDictMapper.selectOne(sysDictQueryWrapper);
        return sysDict;
    }

    @Override
    public void addSysDict(SysDictEntity sysDict) {
        sysDict.setCreateBy("admin");
        sysDict.setCreateTime(new Date());
        sysDictMapper.insert(sysDict);
    }

    @Override
    public void updateSysDict(SysDictEntity sysDict) {
        sysDictMapper.updateById(sysDict);
    }

    @Override
    public void deleteSysDict(Long sysDictId) {
        SysDictEntity sysDictEntity = new SysDictEntity();
        sysDictEntity.setId(sysDictId);
        sysDictEntity.setIsDel(1);
        sysDictEntity.setUpdateBy("admin");
        sysDictEntity.setUpdateTime(new Date());
        sysDictMapper.updateById(sysDictEntity);
    }
}
